#include "parser.h"


std::map<Op, int32_t> Parser::opPrec {
        {Op::Assign,                     2},
        {Op::PlusAssign,                 2},
        {Op::MinusAssign,                2},
        {Op::MultiplyAssign,             2},
        {Op::DivideAssign,               2},
        {Op::ModulusAssign,              2},
        {Op::BitAndAssign,               2},
        {Op::BitOrAssign,                2},
        {Op::BitXorAssign,               2},
        {Op::LeftShiftArithmeticAssign,  2},
        {Op::RightShiftArithmeticAssign, 2},
        {Op::RightShiftLogicalAssign,    2},
        {Op::Or,                         4},
        {Op::And,                        5},
        {Op::BitOr,                      6},
        {Op::BitXOr,                     7},
        {Op::BitAnd,                     8},
        {Op::EQ,                         9},
        {Op::IdentityEquals,             9},
        {Op::NE,                         9},
        {Op::IdentityNotEquals,          9},
        {Op::G,                          10},
        {Op::GE,                         10},
        {Op::L,                          10},
        {Op::LE,                         10},
        {Op::LeftShiftArithmetic,        11},
        {Op::RightShiftArithmetic,       11},
        {Op::RightShiftLogical,          11},
        {Op::Plus,                       12},
        {Op::Minus,                      12},
        {Op::Divide,                     13},
        {Op::Multiply,                   13},
        {Op::Modulus,                    13},
};